#include "Keyboard.hpp"

namespace ge {

//----------------------------------------------------------------------------//
// Keyboard
//----------------------------------------------------------------------------//

const struct 
{
     int id;
     const char* name;
     const char* reg_name;
} 
key_names [] = 
{
     { Keyboard::Key_Unknown, "Unknown", "key_unknown" },
     { Keyboard::Key_F1, "F1", "key_f1" },
     { Keyboard::Key_F2, "F2", "key_f2" },
     { Keyboard::Key_F3, "F3", "key_f3" },
     { Keyboard::Key_F4, "F4", "key_f4" },
     { Keyboard::Key_F5, "F5", "key_f5" },
     { Keyboard::Key_F6, "F6", "key_f6" },
     { Keyboard::Key_F7, "F7", "key_f7" }, 
     { Keyboard::Key_F8, "F8", "key_f8" }, 
     { Keyboard::Key_F9, "F9", "key_f9" },  
     { Keyboard::Key_F10, "F10", "key_f10" }, 
     { Keyboard::Key_F11, "F11", "key_f11" }, 
     { Keyboard::Key_F12, "F12", "key_f12" },
     { Keyboard::Key_0, "0", "key_0" },  
     { Keyboard::Key_1, "1", "key_1" },   
     { Keyboard::Key_2, "2", "key_2" },    
     { Keyboard::Key_3, "3", "key_3" },   
     { Keyboard::Key_4, "4", "key_4" },  
     { Keyboard::Key_5, "5", "key_5" },   
     { Keyboard::Key_6, "6", "key_6" },   
     { Keyboard::Key_7, "7", "key_7" },   
     { Keyboard::Key_8, "8", "key_8" },  
     { Keyboard::Key_9, "9", "key_9" }, 
     { Keyboard::Key_A, "A", "key_a" },   
     { Keyboard::Key_B, "B", "key_b" },   
     { Keyboard::Key_C, "C", "key_c" },  
     { Keyboard::Key_D, "D", "key_d" },  
     { Keyboard::Key_E, "E", "key_e" },  
     { Keyboard::Key_F, "F", "key_f" },  
     { Keyboard::Key_G, "G", "key_g" },   
     { Keyboard::Key_H, "H", "key_h" },  
     { Keyboard::Key_I, "I", "key_i" },  
     { Keyboard::Key_J, "J", "key_j" },  
     { Keyboard::Key_K, "K", "key_k" },  
     { Keyboard::Key_L, "L", "key_l" },  
     { Keyboard::Key_M, "M", "key_m" },  
     { Keyboard::Key_N, "N", "key_n" },  
     { Keyboard::Key_O, "O", "key_o" }, 
     { Keyboard::Key_P, "P", "key_p" },
     { Keyboard::Key_Q, "Q", "key_q" }, 
     { Keyboard::Key_R, "R", "key_r" }, 
     { Keyboard::Key_S, "S", "key_s" }, 
     { Keyboard::Key_T, "T", "key_t" }, 
     { Keyboard::Key_U, "U", "key_u" },  
     { Keyboard::Key_V, "V", "key_v" }, 
     { Keyboard::Key_W, "W", "key_w" },  
     { Keyboard::Key_X, "X", "key_x" },  
     { Keyboard::Key_Y, "Y", "key_y" },  
     { Keyboard::Key_Z, "Z", "key_z" },  
     { Keyboard::Key_Numpad_0, "Numpad 0", "key_numpad_0" },   
     { Keyboard::Key_Numpad_1, "Numpad 1", "key_numpad_1" },   
     { Keyboard::Key_Numpad_2, "Numpad 2", "key_numpad_2" },   
     { Keyboard::Key_Numpad_3, "Numpad 3", "key_numpad_3" },   
     { Keyboard::Key_Numpad_4, "Numpad 4", "key_numpad_4" },   
     { Keyboard::Key_Numpad_5, "Numpad 5", "key_numpad_5" },   
     { Keyboard::Key_Numpad_6, "Numpad 6", "key_numpad_6" },   
     { Keyboard::Key_Numpad_7, "Numpad 7", "key_numpad_7" },   
     { Keyboard::Key_Numpad_8, "Numpad 8", "key_numpad_8" },   
     { Keyboard::Key_Numpad_9, "Numpad 9", "key_numpad_9" }, 
     { Keyboard::Key_Caps_Lock, "Caps Lock", "key_caps_lock" },
     { Keyboard::Key_Scroll_Lock, "Scroll Lock", "key_scroll_lock" },
     { Keyboard::Key_Numpad_Lock, "Numpad Lock", "key_numpad_lock" },
     { Keyboard::Key_LeftShift, "Left Shift", "key_left_shift" },
     { Keyboard::Key_RightShift, "Right Shift", "key_right_shift" },
     { Keyboard::Key_LeftCtrl, "Left Ctrl", "key_left_ctrl" },
     { Keyboard::Key_RightCtrl, "Right Ctrl", "key_right_ctrl" },
     { Keyboard::Key_LeftAlt, "Left Alt", "key_left_alt" },
     { Keyboard::Key_RightAlt, "Right Alt", "key_right_alt" },
     { Keyboard::Key_PrintScreen, "Print Screen", "key_print_screen" },
     { Keyboard::Key_Pause, "Pause", "key_pause" },
     { Keyboard::Key_Escape, "Escape", "key_escape" },
     { Keyboard::Key_Enter, "Enter", "key_enter" },
     { Keyboard::Key_Backspace, "Backspace", "key_backspace" },
     { Keyboard::Key_Tab, "Tab", "key_tab" },
     { Keyboard::Key_Space, "Space", "key_space" },
     { Keyboard::Key_LeftSystem, "Left System", "key_left_system" },
     { Keyboard::Key_RightSystem, "Right System", "key_right_system" },
     { Keyboard::Key_LeftContextMenu, "Left Context Menu", "key_left_context_menu" },
     { Keyboard::Key_RightContextMenu, "Right Context Menu", "key_right_context_menu" },
     { Keyboard::Key_Insert, "Insert", "key_insert" },
     { Keyboard::Key_Delete, "Delete", "key_delete" },
     { Keyboard::Key_Home, "Home", "key_home" },
     { Keyboard::Key_End, "End", "key_end" },
     { Keyboard::Key_Page_Up, "Page Up", "key_page_up" },
     { Keyboard::Key_Page_Down, "Page Down", "key_page_down" },
     { Keyboard::Key_Left, "Left", "key_left" },
     { Keyboard::Key_Right, "Right", "key_right" },
     { Keyboard::Key_Up, "Up", "key_up" },
     { Keyboard::Key_Down, "Down", "key_down" },
     { Keyboard::Key_Numpad_Divide, "Numpad /", "key_numpad_divide" },
     { Keyboard::Key_Numpad_Multiply, "Numpad *", "key_numpad_multiply" },
     { Keyboard::Key_Numpad_Add, "Numpad +", "key_numpad_add" },
     { Keyboard::Key_Numpad_Subtract, "Numpad -", "key_numpad_subtract" },
     { Keyboard::Key_Numpad_Decimal, "Numpad .", "key_numpad_decimal" },
     { Keyboard::Key_Numpad_Enter, "Numpad Enter", "key_numpad_enter" },
     { Keyboard::Key_Tilde, "~", "key_tilde" },
     { Keyboard::Key_Plus, "+", "key_plus" },
     { Keyboard::Key_Minus, "-", "key_minus" },
     { Keyboard::Key_Comma, ",", "key_comma" },
     { Keyboard::Key_Period, ".", "key_period" },
     { Keyboard::Key_ForwardSlash, "/", "key_forward_slash" },
     { Keyboard::Key_BackSlash, "\\", "key_back_slash" },
     { Keyboard::Key_LeftBracket, "[", "key_left_bracket" },
     { Keyboard::Key_RightBracket, "]", "key_right_bracket" },
     { Keyboard::Key_Semicolon, " },", "key_semicolon" },
     { Keyboard::Key_Apostrophe, "'", "key_apostrophe" },
     { Keyboard::Key_Browser_Back, "Browser: Back", "key_browser_back" },
     { Keyboard::Key_Browser_Forward, "Browser: Forward", "key_browser_forward" },
     { Keyboard::Key_Browser_Refresh, "Browser: Refresh", "key_browser_refresh" },
     { Keyboard::Key_Browser_Stop, "Browser: Stop", "key_browser_stop" },
     { Keyboard::Key_Browser_Search, "Browser: Search", "key_browser_search" },
     { Keyboard::Key_Browser_Favorites, "Browser: Favorites", "key_browser_favorites" },
     { Keyboard::Key_Browser_Home, "Browser: Home", "key_browser_home" },
     { Keyboard::Key_Volume_Mute, "Volume Mute", "key_mute" },
     { Keyboard::Key_Volume_Down, "Volume -", "key_volume_down" },
     { Keyboard::Key_Volume_Up, "Volume +", "key_volume_up" },
     { Keyboard::Key_Media_NextTrack, "Media: Next Track", "key_media_next_track" },
     { Keyboard::Key_Media_PrevTrack, "Media: Prev Track", "key_media_prev_track" },
     { Keyboard::Key_Media_Stop, "Media: Stop", "key_media_stop" },
     { Keyboard::Key_Media_PlayPause, "Media: Play/Pause", "key_media_play_pause" },
     { Keyboard::Key_Max, 0, 0 },
};

bool Keyboard::IsValidKey( Key _key )
{
 return true;
}

} // namespace ge
